<div id="maincontent">

<h1>ECMAScript switch 语句</h1>

<div id="tpn">

</div>


<div>
<h2>switch 语句</h2>

<p>switch 语句是 if 语句的兄弟语句。</p>

<p>开发者可以用 switch 语句为表达式提供一系列的情况（case）。</p>

<p>switch 语句的语法：</p>

<pre>switch (<i>expression</i>)
  case <i>value</i>: <i>statement</i>;
    break;
  case <i>value</i>: <i>statement</i>;
    break;
  case <i>value</i>: <i>statement</i>;
    break;
  case <i>value</i>: <i>statement</i>;
    break;
...
  case <i>value</i>: <i>statement</i>;
    break;
  default: <i>statement</i>;
</pre>

<p>每个情况（case）都是表示“如果 <i>expression</i> 等于 <i>value</i>，就执行 <i>statement</i>”。</p>

<p>关键字 break 会使代码跳出 switch 语句。如果没有关键字 break，代码执行就会继续进入下一个 case。</p>

<p>关键字 default 说明了表达式的结果不等于任何一种情况时的操作（事实上，它相对于 else 从句）。</p>

<p>switch 语句主要是为避免让开发者编写下面的代码：</p>

<pre>
if (i == 20)
  alert(&quot;20&quot;);
else if (i == 30)
  alert(&quot;30&quot;);
else if (i == 40)
  alert(&quot;40&quot;);
else
  alert(&quot;other&quot;);
</pre>

<p>等价的 switch 语句是这样的：</p>

<pre>
switch (i) {
  case 20: alert(&quot;20&quot;);
    break;
  case 30: alert(&quot;30&quot;);
    break;
  case 40: alert(&quot;40&quot;);
    break;
  default: alert(&quot;other&quot;);
}
</pre>
</div>

<div>
<h2>ECMAScript 和 Java 中的 switch 语句</h2>

<p>ECMAScript 和 Java 中的 switch 语句有两点不同。在 ECMAScript 中，switch 语句可以用于字符串，而且能用不是常量的值说明情况：</p>

<pre>
var BLUE = &quot;blue&quot;, RED = &quot;red&quot;, GREEN  = &quot;green&quot;;

switch (sColor) {
  case BLUE: alert(&quot;Blue&quot;);
    break;
  case RED: alert(&quot;Red&quot;);
    break;
  case GREEN: alert(&quot;Green&quot;);
    break;
  default: alert(&quot;Other&quot;);
}
</pre>

<p>这里，switch 语句用于字符串 sColor，声明 case 使用的是变量 BLUE、RED 和 GREEN，这在 ECMAScript 中是完全有效的。</p>
</div>


<div id="bpn">

</div>




</div>
